f84bc41b3786b25253ccaabc09074efebc1eb60b,codeInsight/impl/com/intellij/codeInsight/completion/CompletionPreferencePolicy.java,CompletionPreferencePolicy,compare,#LookupItem#LookupItem#,67

Before Change



  public int compare(final LookupItem item1, final LookupItem item2) {
    if (item1 == item2) return 0;
    if(item1.getLookupString().toLowerCase().startsWith(myPrefix.toLowerCase()) && !item2.getLookupString().toLowerCase().startsWith(myPrefix.toLowerCase()))
      return -1;
    if(!item1.getLookupString().toLowerCase().startsWith(myPrefix.toLowerCase()) && item2.getLookupString().toLowerCase().startsWith(myPrefix.toLowerCase()))
      return 1;

After Change



  public int compare(final LookupItem item1, final LookupItem item2) {
    if (item1 == item2) return 0;
    String item1String = item1.getLookupString();
    String item2String = item2.getLookupString();

    item1String = item1String.toLowerCase();
    item2String = item2String.toLowerCase();

    if(item1String.startsWith(myPrefixLowered) && !item2String.startsWith(myPrefixLowered))
      return -1;
    if(!item1String.startsWith(myPrefixLowered) && item2String.startsWith(myPrefixLowered))
      return 1;

    // Check equality in case
    item1String = item1.getLookupString();
    item2String = item2.getLookupString();

    if(item1String.startsWith(myPrefix) && !item2String.startsWith(myPrefix))
      return -1;
    if(!item1String.startsWith(myPrefix) && item2String.startsWith(myPrefix))
      return 1;

    Object o1 = item1.getObject();
    Object o2 = item2.getObject();